package org.xteam.sled.semantic.exp;

public class DefaultExpVisitor implements IExpVisitor {

	@Override
	public void visitAdd(ExpAdd expAdd) {
		expAdd.left().visit(this);
		expAdd.right().visit(this);
	}

	@Override
	public void visitCondition(ExpCondition expCondition) {
		expCondition.left().visit(this);
		expCondition.right().visit(this);
	}

	@Override
	public void visitMul(ExpMul expMul) {
		expMul.getExpr().visit(this);
	}
	
	@Override
	public void visitSlice(ExpSlice expSlice) {
		expSlice.getExpr().visit(this);
	}

	@Override
	public void visitSub(ExpSub expSub) {
		expSub.left().visit(this);
		expSub.right().visit(this);
	}

	@Override
	public void visitWiden(ExpWiden expWiden) {
		expWiden.getExpr().visit(this);
	}
	
	@Override
	public void visitVar(ExpVar expVar) {
		
	}
	
	@Override
	public void visitConst(ExpConst expConst) {
		
	}

	@Override
	public void visitPC(ExpPC expPC) {
		
	}

	@Override
	public void visitDiv(ExpDiv expDiv) {
		expDiv.getExpr().visit(this);
	}

	@Override
	public void visitMod(ExpMod expMod) {
		expMod.getExpr().visit(this);
	}

	@Override
	public void visitNarrows(ExpNarrows expNarrows) {
		expNarrows.getExpr().visit(this);
	}
	
	@Override
	public void visitNarrowu(ExpNarrowu expNarrowu) {
		expNarrowu.getExpr().visit(this);
	}


	@Override
	public void visitForce(ExpForce expForce) {
		expForce.getExpr().visit(this);
	}

	@Override
	public void visitShift(ExpShift expShift) {
		expShift.getExpr().visit(this);
	}

	@Override
	public void visitInstanceTagged(ExpInstanceTagged expInstanceTagged) {
		expInstanceTagged.getExpr().visit(this);
	}

	@Override
	public void visitInstanceInput(ExpInstanceInput expInstanceInput) {
		expInstanceInput.getExpr().visit(this);
	}

	@Override
	public void visitBindingInstance(ExpBindingInstance expBindingInstance) {
	}

}
